/**
* 尊敬的用户，你好：页面 JS 面板是高阶用法，一般不建议普通用户使用，如需使用，请确定你具备研发背景，能够自我排查问题。当然，你也可以咨询身边的技术顾问或者联系宜搭平台的技术支持获得服务（可能收费）。
* 我们可以用 JS 面板来开发一些定制度高功能，比如：调用阿里云接口用来做图像识别、上报用户使用数据（如加载完成打点）等等。
* 你可以点击面板上方的 「使用帮助」了解。
*/

// 当页面渲染完毕后马上调用下面的函数，这个函数是在当前页面 - 设置 - 生命周期 - 页面加载完成时中被关联的。
export function didMount() {
    console.log(`「页面 JS」：当前页面地址 ${location.href}`);
    // console.log(`「页面 JS」：当前页面 id 参数为 ${this.state.urlParams.id}`);
    // 更多 this 相关 API 请参考：https://www.yuque.com/yida/support/ocmxyv#OCEXd
    // document.title = window.loginUser.userName + ' | 宜搭';
    if (this.utils.isSubmissionPage()) {
        this.comFetchData();
    }
}


/**
* 获取值
*/
export function onGetApplicatValue() {
    console.log('onGetValue');
    const value = this.$('employeeField_m3xu4pl3').getValue();
    let content = '';
    let workerNo = '';
    if (Array.isArray(value)) {
        content = value.map(item => item.businessWorkNo).join(', ');
        workerNo = content;
    } else if (value.label) {
        content = value.label;
        workerNo = businessWorkNo;
    }

    this.getReportLineUserData(workerNo, this.$('textField_m4m6aquw').getValue(), this.$('employeeField_m4m6aquv'));

    this.getReportLineUserData(workerNo, this.$('textField_m4m6aquy').getValue(), this.$('employeeField_m4m6aqux'));
}


export function applicatOnChange({ value }) {
    if (this.utils.isSubmissionPage()) {
        this.onGetApplicatValue();
    }
}

/**
 * 指定职级汇报线下
 */
//getReportLineUserConnector
export async function getReportLineUserData(workerNo, superiorLevel, contrl) {
    await this.dataSourceMap.getReportLineUserConnector.load({
        inputs: JSON.stringify({
            "Headers": {
                "Content-Type": "application/json"
            },
            "Query": {
                "superiorLevel": superiorLevel,
                "dingUserId": "",
                "workerNo": workerNo,
                "appId": "yida",
                "comparativeRelation": 1
            }
        })
    }).then(res => {
        const { data } = res;
        if (!data) return;
        const initData = {};
        initData.value = data.leaderDingUserId;
        initData.label = data.leaderWorkerFullName;
        contrl.setValue(initData);
    }).catch(error => {
        this.utils.toast({
            title: error.message,
            type: 'error'
        });
    });
}



export function comFetchData() {
    const that = this
    const loading = this.utils.toast({
        title: '数据获取中 ',
        type: 'loading' // 'success', 'warning', 'error', 'notice', 'help', 'loading'
    });
    this.dataSourceMap.companyConnector.load().then(
        res => {
            loading();
            const { data } = res;
            if (!data) { return };
            const initData = data.filter(item => item.legalEntityStatus == true);
            this.updateCompanyProperty(initData);
            this.setState({
                companyDataSource: initData
            });
            that.$('selectField_m3xw3z12').set("dataSource", initData);
        }
    ).catch(error => {
        loading();
        this.utils.toast({
            title: error.message,
            type: 'error'
        });
    });
}
export function updateCompanyProperty(data) {
    data.forEach(
        item => {
            item.value = item.legalEntityId
            item.text = item.legalEntityName
        }
    );
}

//防抖
export function comNameAndAccontSearch(keyword) {
    if (this.state.debounceTimer) {
        clearTimeout(this.state.debounceTimer);
    }
    const debounceTimer = setTimeout(() => {
        console.log('有防抖', keyword);
        this.getcomNameAndAccontData(keyword);
        this.setState({
            debounceTimer: null,
        });
    }, 800);
    this.setState({
        debounceTimer: debounceTimer
    });
}


export function getcomNameAndAccontData(keyword) {
    const that = this;
    const loading = this.utils.toast({
        title: '数据获取中 ',
        type: 'loading' // 'success', 'warning', 'error', 'notice', 'help', 'loading'
    });
    this.dataSourceMap.comAndAccountconnector.load({
        inputs: JSON.stringify({
            "Headers": {
                "Content-Type": "application/json"
            },
            "Body": {
                "supplierName": keyword,
                "fuzzyQueriesFlag": 1,
                "enabledFlag": 1
            }
        })
    }).then(res => {
        loading();
        const { data } = res;
        if (!data) return;
        updateCompanyAccountProperty(data);
        console.log(data)
        that.$("selectField_m3xw3z13").set("dataSource", data);
        this.setState({
            accountDataSource: data
        });
    }).catch(error => {
        loading();
        this.utils.toast({
            title: error.message,
            type: 'error'
        });
    });
}

export function updateCompanyAccountProperty(data) {
    data.forEach(
        item => {
            item.value = item.supplierCode
            item.text = item.supplierName
        }
    );
}

export function comAccoutOnChange({ value }) {

    const data = this.state.accountDataSource.find(item => item.value == value);
    if (!data) return;
    this.setSupplierAccount(data.supplierAccountList);
}

export function setSupplierAccount(data) {
    if (data) {
        data.forEach(
            item => {
                item.value = item.accountName + "(" + item.accountNum + ")";
                item.text = item.accountName + "(" + item.accountNum + ")";
            }
        );
    }
    if (data && data.length > 0) {
        this.$("selectField_m3xw3z15").set("dataSource", data);
        this.$("selectField_m3xw3z15").reset();
    } else {
        this.$("selectField_m3xw3z15").set("dataSource", null);
        this.$("selectField_m3xw3z15").reset();
    }
}


dingeikrkqt5ypfmkjyt


"inputs": "{  \"msgParam\":\"{\\"comment\\":\\"消息文本\\",\\"type\\":\\"String\\",\\"required\\":true}\",  \"robotCode\":\"{\\"comment\\":\\"机器人AppKey(钉开放平台获取) \\",\\"type\\":\\"String\\",\\"required\\":true}\" }",